/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package stud.cp.user.valueobjects;

import java.math.BigInteger;
import java.util.Date;

/**
 * Класс, описывающий
 * значение свойства.
 * @author Morfant
 */
public class Parameter {

    /**
     * ID значения свойства.
     */
    private BigInteger property_value_id;

    /**
     * ID свойства
     */
    private BigInteger property_id;

    /**
     * Значения
     */
    private String value;

    /**
     * ID оружия
     */
    private BigInteger object_id;

    /**
     * ID списочного свойства
     */
    private BigInteger property_list_value_id;

    /**
     * Списочное значение
     */
    private String property_list_value;

    /**
     * Имя свойства.
     */
    private String property_name;

    /**
     * Имя группы свойства.
     */
    private String property_group_name;

    /**
     * ID типа совйства
     */
    private BigInteger property_type_id;
    
    private Date data;


    /**
     * Полный конструктор.
     * @param property_value_id ID значения свойства
     * @param property_id ID свойства
     * @param value Значение
     * @param object_id ID оружия
     * @param property_list_value_id ID по которому находиться списочное значение
     * @param property_list_value Значие списочного свойства.
     * @param property_name Имя
     * @param property_group_name Имя группы свойства.
     * @param property_type_id Тип свойства
     */
    public Parameter(BigInteger property_value_id, BigInteger property_id, String value, BigInteger object_id,
            BigInteger property_list_value_id,String property_list_value, String property_name,String property_group_name,
            BigInteger property_type_id) {
        this.property_value_id = property_value_id;
        this.property_id = property_id;
        this.value = value;
        this.object_id = object_id;
        this.property_list_value_id = property_list_value_id;
        this.property_list_value=property_list_value;
        this.property_name = property_name;
        this.property_group_name=property_group_name;
        this.property_type_id=property_type_id;
    }

    public Parameter(BigInteger property_value_id, BigInteger property_id, String value, BigInteger object_id,
            BigInteger property_list_value_id, String property_list_value, String property_name, String property_group_name,
            BigInteger property_type_id, Date data) {
        this.property_value_id = property_value_id;
        this.property_id = property_id;
        this.value = value;
        this.object_id = object_id;
        this.property_list_value_id = property_list_value_id;
        this.property_list_value = property_list_value;
        this.property_name = property_name;
        this.property_group_name = property_group_name;
        this.property_type_id = property_type_id;
        this.data = data;
    }

    
    
    /**
     * Конструктор для создания.
     * @param property_id ID свойства
     * @param value значение
     * @param object_id ID оружия
     * @param property_list_value_id ID списочного значения
     */
    public Parameter(BigInteger property_id, String value, BigInteger object_id, BigInteger property_list_value_id) {
        this.property_value_id=new BigInteger("-1");
        this.property_id = property_id;
        this.value = value;
        this.object_id = object_id;
        this.property_list_value_id = property_list_value_id;
        this.property_name = "";
    }

    public Parameter(BigInteger property_id, String value, BigInteger object_id, BigInteger property_list_value_id, Date data) {
        this.property_value_id=new BigInteger("-1");
        this.property_id = property_id;
        this.value = value;
        this.object_id = object_id;
        this.property_list_value_id = property_list_value_id;
        this.property_name = "";
        this.data = data;
    }

    /**
     * Получить ID свойства
     * @return ID свойства
     */
    public BigInteger getProperty_id() {
        return property_id;
    }

    /**
     * Установить ID свойства
     * @param property_id новое ID свойства
     */
    public void setProperty_id(BigInteger property_id) {
        this.property_id = property_id;
    }

    /**
     * Получить списочное значение
     * @return Списочное значение
     */
    public String getProperty_list_value() {
        return property_list_value;
    }

    /**
     * Получить ID списочного свойства
     * @return ID Списочного свойства
     */
    public BigInteger getProperty_list_value_id() {
        return property_list_value_id;
    }

    /**
     * Установить ID списочного свойства
     * @param property_list_value_id ID списочного свойства
     */
    public void setProperty_list_value_id(BigInteger property_list_value_id) {
        this.property_list_value_id = property_list_value_id;
    }

    /**
     * Получить имя свойства
     * @return Имя свойства
     */
    public String getProperty_name() {
        return property_name;
    }

    /**
     * Получить ID значения свойства
     * @return ID значения свойства.
     */
    public BigInteger getProperty_value_id() {
        return property_value_id;
    }

    /**
     * Получить значение свойства
     * @return Значение свойства
     */
    public String getValue() {
        return value;
    }

    /**
     * Установить значение свойства
     * @param value Новое значение свойства.
     */
    public void setValue(String value) {
        this.value = value;
    }

    /**
     * Получить ID оружия.
     * @return ID оружия
     */
    public BigInteger getObject_id() {
        return object_id;
    }

    /**
     * Установить новый ID оружия.
     * @param id ID оружия.
     */
    public void setObject_id(BigInteger id){
        this.object_id = id;
    }

    /**
     * Получить имя группы свойства.
     * @return Имя группы свойства.
     */
    public String getProperty_group_name() {
        return property_group_name;
    }

    /**
     * Установить новое имя группы свойства.
     * @param property_group_name Новое имя группы свойства.
     */
    public void setProperty_group_name(String property_group_name) {
        this.property_group_name = property_group_name;
    }

    /**
     * Получить ID типа свойства.
     * @return ID типа свойства.
     */
    public BigInteger getProperty_type_id() {
        return property_type_id;
    }

    /**
     * Установить ID типа свойства.
     * @param property_type_id ID типа свойства.
     */
    public void setProperty_type_id(BigInteger property_type_id) {
        this.property_type_id = property_type_id;
    }

    public Date getData() {
        return data;
    }

    public void setData(Date data) {
        this.data = data;
    }

}
